Subject: DLSw Version 0.16 Chapter 6 (1 of 2)

From: "Alan K. Bartky, Manager of Technology" <[email-masked]>
Date: Thu, 22 Dec 94 10:32:29 PST

----------
X-Sun-Data-Type: text
X-Sun-Data-Description: text
X-Sun-Data-Name: text
X-Sun-Content-Lines: 3
X-Sun-Content-Length: 67

This is overall part 8 of 12

This is part 1 of 2 for chapter 6

----------
X-Sun-Data-Type: default
X-Sun-Data-Description: default
X-Sun-Data-Name: dlsw6a.txt
X-Sun-Content-Lines: 434
X-Sun-Content-Length: 14988

RFC XXXX      DLSw: Switch-to-Switch Protocol  December 1994

6. Protocol Flow Diagrams

   The Switch-to-Switch Protocol is used to setup and take down circuits
   between a pair of Data Link Switches.  Once a circuit is established,
   the end stations on the local networks can employ LLC Type 1
   (connectionless UI frames) protocols end-to-end.  In addition, the end
   systems can establish an end-to-end connection for support of LLC Type 2
   (connection oriented I frames) protocols (Type 2 I frames go end-to-end,
   supervisory frames are handled locally).

   The term, Data Link, is used in this document to refer to both a
   "logical data link" when supporting Type 1 LLC services, and a "data
   link connection" when supporting Type 2 LLC services.  In both cases,
   the Data Link is identified by the Data Link ID defined in section 3.2.

   NOTE:  THIS SECTION CONTAINS EXAMPLES ONLY.  IT CANNOT AND DOES NOT SHOW
   ALL POSSIBLE VARIATIONS AND OPTIONS ON PROTOCOL FLOWS FOR SNA/SDLC, SSP,
   AND LLC PROTOCOLS.

6.1. Connect Protocols

   The two basic startup flows from a pure FSM perspective are shown below.
   The first flow is a startup involving XIDs and the second is one without
   XIDs.

AIW DLSw Related Interest Group           DLSw version 0.16 [Page 48]

RFC XXXX      DLSw: Switch-to-Switch Protocol  December 1994

   Flow #1 - DLSw Startup With XIDs
    ======                            ___                           ======
    |    |        ---------        __/   \__       ---------        |    |
    |    |      __|  _|_  |__     /   IP    \    __|  _|_  |__      |    |
    ======        |   |   |      <  Network  >     |   |   |        ======
   /______\       ---------       \__     __/      ---------       /______\
    Origin       Origin DLSw         \___/        Target DLSw      Target
    Station        partner                          partner        Station

                 disconnected                    disconnected

                 DLC_RESOLVE_C   CANUREACH_ex
                 ----------->    ----------->

                                   ICANREACH_ex
                                   <-----------

                 DLC_XID         CANUREACH_cs    DLC_START_DL
                 ----------->    ----------->    ----------->
                 circuit_start                   resolve_pending

                                   ICANREACH_cs    DLC_DL_STARTED
                                   <-----------    <-----------
             circuit_established                 circuit_pending
                                 REACH_ACK
                                 ----------->   circuit_established

                                 XIDFRAME        DLC_XID
                                 ----------->    ----------->

                        DLC_XID        XIDFRAME         DLC_XID
                   <-----------    <-----------    <-----------

                 DLC_XID         XIDFRAME        DLC_XID
                 ----------->    ----------->    ----------->

                    DLC_XIDs       XIDFRAMEs        DLC_XIDs
                 <------------>  <------------>  <------------>

                 DLC_CONTACTED   CONTACT         DLC_CONTACT
                 ----------->    ----------->    ----------->
                 connect_pending                 contact_pending

                    DLC_CONTACT       CONTACTED    DLC_CONTACTED
                   <-----------    <-----------    <-----------
                    connected                       connected

                   DLC_INFOs        IFRAMEs        DLC_INFOs
                 <------------>  <------------>  <------------>

AIW DLSw Related Interest Group           DLSw version 0.16 [Page 49]

RFC XXXX      DLSw: Switch-to-Switch Protocol  December 1994

   Mapping LAN events to the DLC events and actions on Flow #1 produces the
   following flows shown below:

    ======                            ___                           ======
    |    |        ---------        __/   \__       ---------        |    |
    |    |      __|  _|_  |__     /   IP    \    __|  _|_  |__      |    |
    ======        |   |   |      <  Network  >     |   |   |        ======
   /______\       ---------       \__     __/      ---------       /______\
    Origin       Origin DLSw         \___/        Target DLSw      Target
    Station        partner                          partner        Station

                 disconnected                    disconnected

   TEST_cmd      DLC_RESOLVE_C    CANUREACH_ex               TEST_cmd
   ----------->  ----------->     ----------->               ---------->

         TEST_rsp                   ICANREACH_ex                 TEST_rsp
     <-----------                   <-----------             <-----------

   null XID      DLC_XID          CANUREACH_cs    DLC_START_DL
   ----------->  ----------->     ----------->    ----------->
                 circuit_start                   resolve_pending

                                   ICANREACH_cs    DLC_DL_STARTED
                                   <-----------    <-------------
              circuit_established                circuit_pending
                                 REACH_ACK
                                 ----------->  circuit_established

                                 XIDFRAME         DLC_XID       null XID
                                 ----------->     --------->    -------->

           XID        DLC_XID        XIDFRAME         DLC_XID          XID
     <--------   <-----------    <-----------    <-----------    <--------

       XIDs         DLC_XIDs      XIDFRAMEs        DLC_XIDs         XIDs
   <---------->  <---------->  <------------>  <------------>  <--------->

   SABME         DLC_CONTACTED   CONTACT         DLC_CONTACT     SABME
   ----------->  ----------->    ----------->    ----------->    -------->
                 connect_pending                 contact_pending

             UA     DLC_CONTACT     CONTACTED    DLC_CONTACTED          UA
     <---------   <-----------   <-----------    <-----------    <--------
                     connected                        connected

     IFRAMEs       DLC_INFOs        IFRAMEs        DLC_INFOs       IFRAMEs
   <---------->  <----------->  <------------>  <------------>  <-------->

AIW DLSw Related Interest Group           DLSw version 0.16 [Page 50]

RFC XXXX      DLSw: Switch-to-Switch Protocol  December 1994

   Those implementations that prefer to respond to the SABME immediately
   could use the same events to do that:

   SABME         DLC_CONTACTED   CONTACT         DLC_CONTACT     SABME
   ----------->  ----------->    ----------->    ----------->    -------->
             UA  connect_pending                 contact_pending
     <---------
   RR
   ----------->
            RNR
     <---------

             RR    DLC_CONTACT       CONTACTED    DLC_CONTACTED          UA
     <---------   <-----------    <-----------    <-----------    <--------
                    connected                        connected

      IFRAMEs      DLC_INFOs        IFRAMEs        DLC_INFOs      IFRAMEs
   <---------->  <------------>  <------------>  <------------>  <-------->

AIW DLSw Related Interest Group           DLSw version 0.16 [Page 51]

RFC XXXX      DLSw: Switch-to-Switch Protocol  December 1994

   Flow #2 - DLSw Startup Without XIDs (circuit setup)

    ======                            ___                           ======
    |    |        ---------        __/   \__       ---------        |    |
    |    |      __|  _|_  |__     /   IP    \    __|  _|_  |__      |    |
    ======        |   |   |      <  Network  >     |   |   |        ======
   /______\       ---------       \__     __/      ---------       /______\
    Origin       Origin DLSw         \___/        Target DLSw      Target
    Station        partner                          partner        Station

                 disconnected                    disconnected

                 DLC_CONTACTED   CANUREACH_cs    DLC_START_DL
                 ----------->    ----------->    ----------->
                 circuit_start                   resolve_pending

                                   ICANREACH_cs    DLC_DL_STARTED
                                   <-----------    <-----------
             circuit_established                 circuit_pending
                                 REACH_ACK
                                 ----------->   circuit_established

                                 CONTACT         DLC_CONTACT
                                 ----------->    ----------->
                 connect_pending                 contact_pending

                    DLC_CONTACT       CONTACTED    DLC_CONTACTED
                   <-----------    <-----------    <-----------
                    connected                       connected

                   DLC_INFOs        IFRAMEs        DLC_INFOs
                 <------------>  <------------>  <------------>

AIW DLSw Related Interest Group           DLSw version 0.16 [Page 52]

RFC XXXX      DLSw: Switch-to-Switch Protocol  December 1994

   Mapping LAN events to the DLC events and actions on Flow #2 (and adding
   a NETBIOS_NQ and NETBIOS_NR_ex) produces:

    ======                            ___                           ======
    |    |        ---------        __/   \__       ---------        |    |
    |    |      __|  _|_  |__     /   IP    \    __|  _|_  |__      |    |
    ======        |   |   |      <  Network  >     |   |   |        ======
   /______\       ---------       \__     __/      ---------       /______\
    Origin       Origin DLSw         \___/        Target DLSw      Target
    Station        partner                          partner        Station

                 disconnected                     disconnected

   NAME_QUERY    DLC_DGRM        NETBIOS_NQ_ex   DLC_DGRM       NAME_QUERY
   ----------->  ----------->    ----------->    ----------->   --------->

      NAME_RECOG    DLC_DGRM      NETBIOS_NR_ex     DLC_DGRM    NAME_RECOG
    <-----------  <------------   <-----------    <-----------  <---------

   SABME         DLC_CONTACTED   CANUREACH_cs    DLC_START_DL
   ----------->  ----------->    ----------->    ----------->
                  circuit_start                 resolve_pending

                                   ICANREACH_cs    DLC_DL_STARTED
                                   <-----------    <-----------
               circuit_established                circuit_pending
                                 REACH_ACK
                                 ----------->   circuit_established

                                 CONTACT         DLC_CONTACT     SABME
                                 ----------->    ----------->    --------->
                connect_pending                 contact_pending

             UA   DLC_CONTACT       CONTACTED    DLC_CONTACTED           UA
     <---------  <-----------    <-----------    <-----------    <---------
                   connected                       connected

      IFRAMEs       DLC_INFOs       IFRAMEs        DLC_INFOs       IFRAMEs
   <------------> <------------> <------------>  <------------>  <-------->

   In keeping with a paradigm of 'DLSw is a big 802.2 LAN', all other DLC
   types (SDLC for now, QLLC, channel, or whatever in the future) would be
   handled by a 'DLC transformation layer' that would transform the
   specific protocol's events into the appropriate DLSw DLC events and DLSw
   DLC actions into the appropriate protocol actions.  The XIDs that flow
   in the SSP XIDFRAME should stay 802.2ish (i.e. ABM bit set) and leave it
   up to the DLC transformation layer to suit the XID to its particular DLC
   type.

AIW DLSw Related Interest Group           DLSw version 0.16 [Page 53]

RFC XXXX      DLSw: Switch-to-Switch Protocol  December 1994

   Here is an example of a leased SDLC PU 2.0 device as the origin station.
   It should use Flow #2 since it is not known if the other side is a LAN,
   a switched line or a leased line.

    ======                            ___                           ======
    |    |        ---------        __/   \__       ---------        |    |
    |    |      __|  _|_  |__     /   IP    \    __|  _|_  |__      |    |
    ======        |   |   |      <  Network  >     |   |   |        ======
   /______\       ---------       \__     __/      ---------       /______\
    Origin       Origin DLSw         \___/        Target DLSw      Target
    Station        partner                          partner        Station

                 disconnected                     disconnected

   implementer's  DLC_RESOLVE_C   CANUREACH_ex
   choice (power  ----------->    ----------->
   up, configuration
   change, never,                  ICANREACH_ex
   connect time, etc.)             <-----------

   PU 2.0 is
   configured
   in DLSw to    DLC_XID(null)   CANUREACH_cs    DLC_START_DL
   call in       ----------->    ----------->    ----------->
                 circuit_start                   resolve_pending

                                   ICANREACH_cs   DLC_DL_STARTED
                                   <-----------   <-----------
              circuit_established                circuit_pending
                                   REACH_ACK
                                   ----------->   circuit_established

                                 XIDFRAME        DLC_XID
                                 ----------->    ----------->

                       DLC_XID        XIDFRAME         DLC_XID
   respond with   <-----------    <-----------    <-----------
   XID configured
   for station or
   forward XID to
   station and
   send response  DLC_XID        XIDFRAME        DLC_XID
                  ----------->   ----------->    ----------->

           SNRM    DLC_CONTACT       CONTACT      DLC_CONTACTED
     <---------   <-----------    <-----------    <------------
                 contact_pending                    connect_pending

   UA            DLC_CONTACTED    CONTACTED       DLC_CONTACT
   ---------->    ----------->    ----------->    ----------->
                   connected                       connected

      IFRAMEs       DLC_INFOs        IFRAMEs        DLC_INFOs
   <----------->  <------------>  <------------>  <------------>

AIW DLSw Related Interest Group           DLSw version 0.16 [Page 54]